#ifndef PROCESS_DOCUMENT_AUTOCOMPLETE_H
#define PROCESS_DOCUMENT_AUTOCOMPLETE_H

#include <QtCore/QHash>

namespace core
{
class IDocumentData;
}

namespace swp
{

class ProcessDocumentAutocomplete
{
public:
    static ProcessDocumentAutocomplete* getInstance();
    static void destroy();

    void refreshSwimlanes(core::IDocumentData* data,
        const QList<QString>& workers);
    QList<QString> getSwimlanes(core::IDocumentData* data) const;

    void refreshInputs(core::IDocumentData* data,
        const QList<QString>& resources);
    QList<QString> getInputs(core::IDocumentData* data) const;

    void refreshOutputs(core::IDocumentData* data,
        const QList<QString>& artifacts);
    QList<QString> getOutputs(core::IDocumentData* data) const;

private:
    ProcessDocumentAutocomplete();
    ~ProcessDocumentAutocomplete();

private:
    QHash<core::IDocumentData*, QList<QString> > m_swimlanes;
    QHash<core::IDocumentData*, QList<QString> > m_inputs;
    QHash<core::IDocumentData*, QList<QString> > m_outputs;
};

} // namespace swp

#endif
